/*
THIS FILE IS PART OF THE >>ADRENALIN-3D-GRAFIC-ENGINE<<
for latest info visit http://www.creative-games.de

Copyright (c) 2008-2009 by Marco Schneider

This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License (LGPL) as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
License for more details.

*/

#ifndef __ADL_MATH_MAIN_H__
#define __ADL_MATH_MAIN_H__

#include "../Defines.h"
#include "Vector2.h"
#include "Vector3.h"
#include "Vector4.h"
#include "Matrix44.h"
#include <math.h>

namespace Adrenalin
{
	namespace Math
	{
		#pragma region Constants Double
		const double DPI            = 4.0*atan(1.0);
		const double DHALF_PI       = 0.5*DPI;
		const double DQUATER_PI     = 0.25*DPI;
		const double DTWO_PI        = 2.0*DPI;
		const double DFOUR_PI       = 4.0*DPI;
		const double DINV_PI        = 1.0/DPI;
		const double DINV_TWO_PI    = 2.0*DINV_PI;
		const double DINV_FOUR_PI   = 4.0*DINV_PI;
		const double DINV_HALF_PI   = 0.5*DINV_PI;
		const double DINV_QUATER_PI = 0.25*DINV_PI;
		#pragma endregion 

		#pragma region Constants Float
		const float PI              = (float)DPI;
		const float HALF_PI         = 0.5f*PI;
		const float QUATER_PI       = 0.25f*PI;
		const float TWO_PI          = 2.f*PI;
		const float FOUR_PI         = 4.0f*PI;
		const float INV_PI          = 1.0f/PI;
		const float INV_TWO_PI      = 2.0f*INV_PI;
		const float INV_FOUR_PI     = 4.0f*INV_PI;
		const float INV_HALF_PI     = 0.5f*INV_PI;
		const float INV_QUATER_PI   = 0.25f*INV_PI;
		#pragma endregion 
	}
}
#endif